package com.luo.chengrui.module.sa.dal.mysql.datapermission;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.luo.chengrui.module.sa.controller.admin.datapermission.vo.DataPermissionDefineDataRespVO;
import com.luo.chengrui.module.sa.controller.admin.datapermission.vo.DataPermissionDefineExportReqVO;
import com.luo.chengrui.module.sa.controller.admin.datapermission.vo.DataPermissionDefinePageReqVO;
import com.luo.chengrui.module.sa.dal.dataobject.datapermission.DataPermissionDefineDO;
import com.luo.chengrui.module.sa.dal.dataobject.datapermission.DataPermissionDefineDataDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用来定义哪些业务表用来做权限控制，如部门表、费用科目、项目表。一般用来控制权限的都是基础数据表。 Mapper
 *
 * @author luodz
 */
@Mapper
public interface DataPermissionDefineDataMapper extends BaseMapperX<DataPermissionDefineDataDO> {

    default List<DataPermissionDefineDataDO> selectList(DataPermissionDefineDataDO reqVO) {
        return selectList(new LambdaQueryWrapperX<DataPermissionDefineDataDO>()
                .likeIfPresent(DataPermissionDefineDataDO::getDefineId, reqVO.getDefineId())
                .orderByDesc(DataPermissionDefineDataDO::getId));
    }

    List<DataPermissionDefineDataDO> executeSelectSqlScript(@Param("sqlScript") String sqlScript);

    List<DataPermissionDefineDataDO> selectDefineData(@Param("params") DataPermissionDefineDO dataPermissionDefineDO);
}
